package com.notary.service;

import com.notary.entity.po.ContractDTO;
import com.notary.entity.Contract;
import com.baomidou.mybatisplus.extension.service.IService;
import com.notary.entity.po.DepositDTO;
import com.notary.entity.po.ExecCertRequest;
import com.notary.entity.po.VideoOnlineDTO;
import com.notary.entity.vo.JsonResult;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 公证卷宗基本信息 服务类
 * </p>
 *
 * @author xujun
 * @since 2020-07-28
 */
public interface ContractService extends IService<Contract> {

    JsonResult addContract(ContractDTO dto, HttpServletRequest httpServletRequest)throws Exception;
    JsonResult findMyDo(HttpServletRequest request, ContractDTO dto);
    JsonResult getContractViewById(Long id,HttpServletRequest httpServletRequest);
    JsonResult chuhe(ContractDTO dto, HttpServletRequest httpServletRequest);
    JsonResult shouli(ContractDTO dto, HttpServletRequest httpServletRequest);
    JsonResult shencha(ContractDTO dto, HttpServletRequest httpServletRequest);
    JsonResult nici(ContractDTO dto, HttpServletRequest httpServletRequest)throws Exception;
    JsonResult zhizheng(ContractDTO dto, HttpServletRequest httpServletRequest)throws Exception;
    JsonResult fazheng(ContractDTO dto, HttpServletRequest httpServletRequest);
    JsonResult shenpi(ContractDTO dto, HttpServletRequest httpServletRequest);
    JsonResult getByNotaryNo(String notaryNo);
    JsonResult addFile(ContractDTO dto);
    JsonResult getSendDataList(ContractDTO dto);
    Integer getNotaryId(HttpServletRequest request);

    JsonResult zhixing(ContractDTO dto,HttpServletRequest httpServletRequest)throws Exception;
    JsonResult heshihan(ContractDTO dto,HttpServletRequest httpServletRequest)throws Exception;
    JsonResult applyExecCert(ExecCertRequest execCertRequest);

    JsonResult preview(ContractDTO dto,HttpServletRequest request);

    JsonResult checkCustNo(HttpServletRequest request);

    JsonResult online(VideoOnlineDTO videoOnlineDTO);

    Integer waitApprovalCount(Long owner);

     void downloadDeposit(String hashCode, String password, HttpServletResponse response);

    JsonResult verifyDeposit(MultipartFile file, String hashCode, String originalHash);

    JsonResult getDepositList(Integer pageNum, Integer pageSize, DepositDTO dto);
}
